package com.itheima.dao;

import com.itheima.pojo.Role;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Set;

public interface RoleMapper {
    int deleteByPrimaryKey(Integer id);

    int insert(Role record);

    int insertSelective(Role record);

    Role selectByPrimaryKey(Integer id);

    int updateByPrimaryKeySelective(Role record);

    int updateByPrimaryKey(Role record);

    Set<Role> findByUserId(@Param("id") Integer id);

    //查询角色的所有信息，用于回显
    List<Role> findAll();

    List<Role> findPage(@Param("queryString") String queryString);

    void add(Role role);

    void setRoleAndPermissionAssociation(@Param("roleId") Integer roleId, @Param("permissionIds") List<Integer> permissionIds);

    void setRoleAndMenuAssociation(@Param("roleId")Integer roleId, @Param("menuIds")List<Integer> menuIds);

    Role findById(@Param("id")Integer id);

    List<Integer> findPermissionIds(@Param("id")Integer id);

    List<Integer> findMenuIds(@Param("id")Integer id);

    void editRole(Role role);

    void deleteRoleAndPermissionAssociation(@Param("roleId") Integer roleId);

    void deleteRoleAndMenuAssociation(@Param("roleId") Integer roleId);


    Integer getRoleAndPermissionCountByRoleId(@Param("id") Integer id);

    Integer getRoleAndMenuCountByRoleId(@Param("id")Integer id);
}
